上一篇提到了網路通訊協定 OSI、TCP/IP,將通訊時不同資料的傳輸方式制定一套標準,而這篇會提到其中的傳輸層,WebRTC又是使用哪個傳輸層協議及原因。
TCP 與 UDP 是傳輸層的兩種協議,IP 協定標識設備的位置,而TCP/UDP則決定了數據的傳輸、封包方式,以下會說明兩者的運作方式以及比較。
TCP 是一種面向連接的,大部分的網路協定,都是建立在 TCP 上面,因為它是 可靠的傳輸協議; 為每個封包分配一個識別碼,在接收時能夠確保數據的順序及完整性。
UDP 是一種無連接、不需要為每個封包分配識別碼,發送端不會等待接收端的確認信號,會繼續快速的且不斷發送封包資料。應用在視訊,傳輸速度比 TCP 更快。但也被稱為不可靠的傳輸協議。
特點 | TCP (Transmission Control Protocol) | UDP (User Datagram Protocol) |
---|---|---|
連接性 | 有連接,建立可靠的連接。 | 無連接,直接傳輸數據。 |
可靠性 | 確保數據不會丟失或損壞。 | 數據可能會丟失或以不同的順序到達。 |
延遲 | 較高延遲,因為需要等待確認回饋。 | 較低延遲,因為無需等待確認回饋。 |
用途 | 適用於需要可靠性的應用,如文件傳輸、電子郵件傳送等。 | 適用於實時性要求高的應用,如語音通話、視頻流、遊戲等。 |
流量控制 | 提供流量控制機制,調整數據的傳輸速率,避免過多的數據擁堵網絡。 | 不提供流量控制,可能導致網絡擁堵。 |
建立連接和關閉連接 | 使用三次握手建立連接和四次揮手關閉連接。 | 無連接,不需要建立或關閉連接。 |
可以得知 WebRTC 是透過 傳輸層的 UDP 協議進行通訊,主要也是因為在通訊時會希望以即時性為優先,此時 UDP 的低延遲與即時性是非常重要的也可以避免影響用戶體驗,而 TCP 能夠錯誤檢測和重發,WebRTC 則是透過其應用層自行處理錯誤恢復的機制處理丟失的數據,不需要依賴 TCP 的重發機制。此外由於 WebRTC 使用 P2P 連線不需要伺服器,使用UDP能夠更好地應對不同用戶之間的動態網絡環境。
參考資料
使用者資料報協定 - 維基百科,自由的百科全書 (wikipedia.org)
TCP 和 UDP 是什麼:簡單的說明 | NordVPN
[第四週] 網路基礎 - TCP/IP | Yakim shu (yakimhsu.com)